<?php

namespace app\admin\controller;

use think\Controller;
use think\Request;

class Login extends Controller
{
    /**
     * 显示资源列表
     */
    public function index()
    {
        if (Request::instance()->isGet()){
            (session('adminInfo') || cookie('admin')) && $this->redirect('admin/Index/index');
            $this->assign('loginErrorInfo', session('login_error_info'));
            return view();
        }
        //是否是post请求
        if(Request::instance()->isPost()){
            // 保持登录
            $online = input('post.online/s','');
            // 获取用户名
            $user = input('post.username/s','');
            // 获取密码
            $pwd = input('post.password/s','');
            // 判断用户名是否为空
            $user || $this->login_error_redirect('用户名不能为空!');
            // 判断密码是否为空
            $pwd || $this->login_error_redirect('密码不能为空!');
            // 获取数据库中的数据  然后赋值给 $userInfo
            $userInfo = db('admin')->where('number',$user)->find();
            // $userInfo和from提交的比对
            $userInfo || $this->login_error_redirect('用户名不存在!');
            password_verify($pwd, $userInfo['password']) || $this->login_error_redirect('输入的密码有误!');
            // 判断用户是否被限制
            $userInfo['status'] || $this->login_error_redirect('该账户被限制登录!');
            // 获取表内容
            $adminData=[
                'aid'=>$userInfo['id'],
                'user'=>$userInfo['number'],
                'username'=>$userInfo['name'],
                'time'=>$userInfo['addTime'],
            ];
            $online && cookie('admin',$adminData,time()+36000);
            session('login_error_info', null);
            session('adminInfo', $adminData);
            $this->redirect('admin/index/index');
        }

    }

    // 错误提示
    private function login_error_redirect($error,$url = 'admin/login/index'){
        session('login_error_info',$error);
        $this->redirect($url);
    }

    // 退出登录
    public function loginOut(){
        session('adminInfo', null);
        session(null);
        cookie('admin',null);
        cookie(null);
        $this->redirect('admin/login/index');
    }
}